#pragma once

#include <interface/interface.h>

class tray_msg_show;
class tray_msg_item_base
{
public:

	tray_msg_item_base(void);
	~tray_msg_item_base(void);

public:
	virtual void destroy() = 0;
	virtual BOOL execute_msg(LPCTSTR userid) = 0;
	virtual void push_msg(void* msg_data) = 0;
	virtual void merge(tray_msg_item_base *p) = 0;
	virtual void* get_item_data() = 0;
	virtual int get_msg_count() = 0;
	virtual void display(HWND hwnd, int row) = 0;

public:
	void set_icon_path(LPCTSTR path);
	CString get_icon_path();

	virtual void set_flag(int flag)
	{
		this->flag_ = flag;
	}
	virtual void set_tray_msg_show(tray_msg_show* pdlg)
	{
		this->pdlg_tray_msg_show_ = pdlg;
	}
	tray_msg_show *pdlg_tray_msg_show_;
	void set_id(const char* id)
	{
		this->id_ = id;
	}

	CString get_id()
	{
		return this->id_;
	}
protected:
	
private:
	int flag_;
	CString id_;
	CString icon_path_;
};
